The present invention relates generally to DVD devices, and, more particularly, to a method and apparatus for decoding and displaying a DVD sub-picture.
DVD discs (which initials have been attributed to stand for xe2x80x9cdigital versatile discxe2x80x9d and xe2x80x9cdigital video discxe2x80x9d) are small, circular discs used as a non-volatile storage medium. DVD discs are commonly used to store digital data, especially audio and video image data. The audio and video images are typically formatted and encoded according to industry standard protocols before being stored on a DVD disc. Such standards include DVD VOB, VideoCD, CD-I, MPEG-1, MPEG-2, CD-ROM, or CD-DA. A DVD player reads the encoded data from the DVD and decodes it for reproduction on a computer, television, or other audio/visual device.
The decoded data on a DVD disc typically includes an audio stream, a main video image stream, and a sub-picture video image stream. The sub-picture typically overlays the main video image and may contain a variety of different types of information such as menus, sub-titles, and directives. The main video image and the sub-picture image are separately processed, then combined for simultaneous display on the screen.
A suggested method of decoding the sub-picture is described in DVD Specifications for Read-Only Disksxe2x80x94Part 3, available from Toshiba Corporation (xe2x80x9cDVD Specificationxe2x80x9d). The DVD Specification describes the formats for encoding the data, and provides a suggested method of decoding the encoded sub-picture image. The suggested method defines two different areas of memory for use in decoding the sub-picture. Typically, these memory areas are found in a dynamic random access memory (DRAM). The first memory area is an input sub-picture stream buffer with a fixed size of 52 Kbytes. It is used to handle the flow of the incoming bitstream. As data comes from the DVD disc, it is stored in the first memory until it can be processed and decoded. The second memory area holds up to 405 Kbytes and is for storing the decoded sub-picture image after it is formed. The DVD player decodes the data and forms a sub-picture image. The fully formed sub-picture image is stored in the second memory area until it is displayed.
It is desirable to be able to perform the same operation using less memory with no loss of data or degradation of the sub-picture image. Large memories translate into higher costs, more power consumption, and larger profile devices, to name a few of the disadvantages associated with larger memories.
Consequently, an improved DVD player and method of decoding DVD images using less memory to decode the sub-picture is desirable.
The present invention provides a memory efficient method of decoding and displaying sub-picture images for DVD data. Rather than storing the sub-picture image in a memory as is done in prior art systems, the present invention decodes and displays the sub-picture images on-the-fly. An improved DVD player is also disclosed for implementing the inventive method.
In accordance with one embodiment of the present invention, sub-picture data from the DVD disc includes compressed image data and control data. The sub-picture decoder decompresses the compressed image data, translates the image data to form a sub-picture pixel, and displays the sub-picture pixel on-the-fly. The sub-picture image is not stored in a memory prior to being displayed.
In accordance with another embodiment of the present invention, the compressed image data and the control data are stored initially in a buffer memory. The compressed image data and the control data are separately staged to first-in, first-out memories. A display command state machine reads the control data and using the information contained therein, controls the flow and translation of the compressed image data to a sub-picture pixel. The translation from image data to a sub-picture pixel is done by using a lookup table that holds color and contrast information for various types of pixels. After translating the image data, the sub-picture pixel is displayed on-the-fly. An output formatter operates on the sub-picture pixel to put it in a format expected by the particular display being used.